﻿<%@ Page Title="Cidades" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
    CodeBehind="Cidades.aspx.cs" Inherits="RzCorportativo.Views.Administrativo.Cidades" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="LeftContent" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
    <div class="tabbable tabs-left">
        <div class="tab-content">
            <div class="tab-pane active" id="geral">
                <div class="span12 well">
                    <div class="controls controls-row">
                        <asp:TextBox runat="server" ID="Nome" placeholder="Cidade" type="text" data-toggle="tooltip"
                            title="Cidade" data-placement="left" has-dependent="true" target="CidadeId" />
                    </div>
                    <div class="controls controls-row">
                        <asp:DropDownList runat="server" ID="Uf" data-toggle="tooltip"
                            title="UF" data-placement="left" >
                            <asp:ListItem Text="SELECIONE" Selected="True" default="true"/>
                            <asp:ListItem Text="PR" />
                            <asp:ListItem Text="SC" />
                            <asp:ListItem Text="RS" />
                        </asp:DropDownList>
                        <asp:HiddenField runat="server" ID="CidadeId" />
                    </div>
                    <div class="controls controls-row">
                        <input type="button" name="btnNovo" value="salvar" id="btnAdionaCidade" class="btn btn-success" />
                    </div>
                </div>
                <br />
                <div dataspy="">
                    <table class="table table-hover" id="gridCidade" runat="server">
                        <thead>
                            <tr>
                                <th>
                                    Item
                                </th>
                                <th>
                                    #
                                </th>
                            </tr>
                        </thead>
                        <tbody>
                        </tbody>
                    </table>
                </div>
                <script type="text/javascript">
                    $(function () {
                        $("input[has-dependent='true']").keyup(function () {
                            if ($(this).val().length == 0) {
                                $("input[id$='" + $(this).attr("target") + "']").val("");
                            }
                        });
                        $("input[id$='btnAdionaCidade']").click(function (e) {
                            var cidade = new Cidade();
                            var alerta = new Alert();
                            alerta.Name = "erroGeral";
                            e.preventDefault();
                            cidade.Nome = $("input[id$='Nome']").val();
                            cidade.UF.UF = $("select[id$='Uf'] option:selected").val();
                            var id = $("input[id$='CidadeId']").val();
                            cidade.CidadeId = parseInt(id, 10);
                            if (id.length > 0 && isNaN(cidade.CidadeId)) {
                                alerta.AddMessage("Código de alerta inválido");
                                cidade.CidadeId = -1;
                            } else {
                                cidade.CidadeId = isNaN(cidade.CidadeId) ? 0 : cidade.CidadeId;
                            }
                            if (cidade.Nome.length == 0) {
                                alerta.AddMessage("Nome inválido");
                            }
                            if (cidade.UF.length == 0) {
                                alerta.AddMessage("UF inválido");
                            }
                            if (alerta.HasMessage()) {
                                alerta.Type = AlertType.Error;
                                alerta.Show();
                                return false;
                            }
                            cidade.Salvar();
                            return false;
                        });
                    });
                    function Cidade() {
                        this.CidadeId = 0;
                        this.Nome = "";
                        this.UF = {
                            UF: ""
                        };
                        this.Salvar = function () {
                            var json = JSON.stringify(this);
                            current = this;
                            __post("Views/Administrativo/Cidades.aspx/AddCidade", "{ cidade :" + json + " }", function (item) {
                                if ($("tr[cidade='" + current.CidadeId + "']").length > 0) {
                                    $("tr[cidade='" + current.CidadeId + "']:first").remove();
                                }
                                current.CidadeId = item.d.Value;
                                var tbody = "<tr cidade='" + current.CidadeId.toString(10) + "'><td><a href='javascript:Editar({ Nome: \"" + current.Nome + "\", CidadeId: " + current.CidadeId.toString(10) + ", UF: \"" + current.UF.UF + "\" }); void(0);'>" + current.Nome.toUpperCase() +
                                "</a></td><td><input type='button' id='btnRemoveCidade'" + current.CidadeId.toString(10) + " onclick='RemoveCidade(" + current.CidadeId.toString(10) + ", this)' class='btn btn-danger' value='remover'/></td></tr>";
                                $('table[id$="gridCidade"] tr:last').after(tbody);
                                $("input[id$='Nome']").val("");
                                $("input[id$='CidadeId']").val("");
                                $("select[id$='Uf'] option").removeAttr("selected");
                                $("select[id$='Uf'] option[default='true']").attr("selected", "selected");
                            });
                        }
                        this.Excluir = function (item) {
                            var json = JSON.stringify(this);
                            var current = this;
                            __post("Views/Administrativo/Cidades.aspx/RemoveCidade", "{ cidade :" + json + " }", function (item) {
                                if ($("tr[cidade='" + current.CidadeId + "']").length > 0) {
                                    $("tr[cidade='" + current.CidadeId + "']:first").remove();
                                }
                                current.CidadeId = item.d.Value;
                                $("input[id$='Nome']").val("");
                                $("input[id$='CidadeId']").val("");
                            });

                        }
                        var __post = function (url, parans, success, error) {
                            var alerta = new Alert();
                            alerta.Type = AlertType.Error;
                            alerta.Name = "erroGeral";
                            $.ajax({
                                url: eS.UrlPadrao + url,
                                type: "post",
                                dataType: "json",
                                contentType: "application/json; charset=utf-8",
                                data: parans,
                                success: function (e) {
                                    if (e.d && e.d.AlertType != undefined) {
                                        alerta.Type = e.d.AlertType;
                                        for (var i in e.d.Messages) {
                                            alerta.AddMessage(e.d.Messages[i]);
                                        }
                                        if (e.d.Show && e.d.Show == true) {
                                            alerta.Show();
                                        }
                                    } else {
                                        if (e.responseText) {
                                            alerta.Type = 2;
                                            alerta.AddMessage(e.responseText);
                                        } else {
                                            alerta.Type = 1;
                                            alerta.AddMessage("Retorno inválido, o objeto retornado não está em um formato correto")
                                        }
                                        alerta.Show();
                                    }
                                    if (alerta.Type == AlertType.Success && success && typeof success == "function") {
                                        success.call(this, e);
                                    }
                                },
                                error: function (e) {
                                    alerta.Type = 1;
                                    alerta.AddMessage(e.responseText);
                                    alerta.Show();
                                    if (error && typeof error == "function") {
                                        error.call(this, e);
                                    }
                                }
                            });
                        }
                    }

                    function RemoveCidade(id, link) {
                        var cidade = new Cidade();
                        cidade.CidadeId = id;
                        cidade.Excluir(link);
                    }
                    function Editar(item) {
                        $("input[id$='CidadeId']").val(item.CidadeId.toString(10));
                        $("input[id$='Nome']").val(item.Nome);
                        $("select[id$='Uf'] option").removeAttr("selected");
                        $("select[id$='Uf'] option[value='" + item.UF + "']").attr("selected", "selected");
                        return false;
                    }
                </script>
            </div>
        </div>
    </div>
</asp:Content>
